package aa.jx.order.mapper;

import aa.jx.order.model.Order;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@Mapper
public interface OrderMapper {
    int insert(Order order);
    Order selectById(Long id);
    List<Order> selectByUserId(Integer userId);
    int updateShippingInfo(Order order);
    int updatePaymentStatus(Order order);
    // 管理员查询订单
    List<Order> selectAllOrders(@Param("orderNo") String orderNo,
                                @Param("userId") Integer userId,
                                @Param("status") Integer status,
                                @Param("startTime") String startTime,
                                @Param("endTime") String endTime);
    // 按状态统计订单数量
    List<Map<String, Object>> countOrdersByStatus();

    // 计算销售额
    BigDecimal sumSalesAmount(@Param("startTime") String startTime,
                              @Param("endTime") String endTime);

    // 按天统计订单数量
    List<Map<String, Object>> countDailyOrders(@Param("startTime") String startTime,
                                               @Param("endTime") String endTime);

    Integer countByStatus(@Param("status") Integer status);
}